home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / include / netinet / if_ether.h < prev    next >
C/C++ Source or Header  |  1990-11-29  |  2KB  |  67 lines

  1. /*
  2.  * Copyright (c) 1982, 1986 Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms are permitted
  6.  * provided that this notice is preserved and that due credit is given
  7.  * to the University of California at Berkeley. The name of the University
  8.  * may not be used to endorse or promote products derived from this
  9.  * software without specific prior written permission. This software
  10.  * is provided ``as is'' without express or implied warranty.
  11.  *
  12.  *    @(#)if_ether.h    7.2 (Berkeley) 12/7/87
  13.  * $Header: /sprite/src/lib/include/netinet/RCS/if_ether.h,v 1.5 90/11/29 19:38:56 kupfer Exp $
  14.  */
  15.  
  16. #ifndef _IF_ETHER
  17. #define _IF_ETHER
  18.  
  19. #include <net/if_arp.h>
  20.  
  21. /*
  22.  * Structure of a 10Mb/s Ethernet header.
  23.  */
  24. struct    ether_header {
  25.     u_char    ether_dhost[6];
  26.     u_char    ether_shost[6];
  27.     u_short    ether_type;
  28. };
  29.  
  30. #define    ETHERTYPE_PUP    0x0200        /* PUP protocol */
  31. #define    ETHERTYPE_IP    0x0800        /* IP protocol */
  32. #define ETHERTYPE_ARP    0x0806        /* Addr. resolution protocol */
  33. #define ETHERTYPE_RARP    0x8035        /* Reverse addr. resol. protocol */
  34.  
  35. /*
  36.  * The ETHERTYPE_NTRAILER packet types starting at ETHERTYPE_TRAIL have
  37.  * (type-ETHERTYPE_TRAIL)*512 bytes of data followed
  38.  * by an ETHER type (as given above) and then the (variable-length) header.
  39.  */
  40. #define    ETHERTYPE_TRAIL        0x1000        /* Trailer packet */
  41. #define    ETHERTYPE_NTRAILER    16
  42.  
  43. #define    ETHERMTU    1500
  44. #define    ETHERMIN    (60-14)
  45.  
  46. /*
  47.  * Ethernet Address Resolution Protocol.
  48.  *
  49.  * See RFC 826 for protocol description.  Structure below is adapted
  50.  * to resolving internet addresses.  Field names used correspond to 
  51.  * RFC 826.
  52.  */
  53. struct    ether_arp {
  54.     struct    arphdr ea_hdr;    /* fixed-size header */
  55.     u_char    arp_sha[6];    /* sender hardware address */
  56.     u_char    arp_spa[4];    /* sender protocol address */
  57.     u_char    arp_tha[6];    /* target hardware address */
  58.     u_char    arp_tpa[4];    /* target protocol address */
  59. };
  60. #define    arp_hrd    ea_hdr.ar_hrd
  61. #define    arp_pro    ea_hdr.ar_pro
  62. #define    arp_hln    ea_hdr.ar_hln
  63. #define    arp_pln    ea_hdr.ar_pln
  64. #define    arp_op    ea_hdr.ar_op
  65.  
  66. #endif _IF_ETHER
  67.